/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package test.net.sourceforge.pmd.cpd;
import junit.framework.TestCase;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.cpd.Match;
import net.sourceforge.pmd.cpd.Renderer;
import net.sourceforge.pmd.cpd.TokenEntry;
import net.sourceforge.pmd.cpd.XMLRenderer;
import java.util.ArrayList;
import java.util.List;
/**
* @author Philippe T'Seyen
*/
public class XMLRendererTest extends TestCase
{
public void testRender_NoMatches()
{
Renderer renderer = new XMLRenderer();
List list = new ArrayList();
String report = renderer.render(list.iterator());
assertEquals("<?xml version=\"1.0\"?><pmd-cpd></pmd-cpd>", report);
}
public void testRender_Match()
{
Renderer renderer = new XMLRenderer();
List list = new ArrayList();
Match match = new Match(75, new TokenEntry("public", "/var/Foo.java", 48), new TokenEntry("stuff", "/var/Foo.java", 73));
match.setLineCount(6);
match.setSourceCodeSlice("code fragment");
list.add(match);
String report = renderer.render(list.iterator());
assertEquals("<?xml version=\"1.0\"?><pmd-cpd><duplication lines=\"6\" tokens=\"75\"><file line=\"48\" path=\"/var/Foo.java\"/><file line=\"73\" path=\"/var/Foo.java\"/><codefragment><![CDATA[" + PMD.EOL + "code fragment" + PMD.EOL + "]]></codefragment></duplication></pmd-cpd>", report);
}
public void testRender_MultipleMatch()
{
Renderer renderer = new XMLRenderer();
List list = new ArrayList();
Match match1 = new Match(75, new TokenEntry("public", "/var/Foo.java", 48), new TokenEntry("void", "/var/Foo.java", 73));
match1.setLineCount(6);
match1.setSourceCodeSlice("code fragment");
Match match2 = new Match(76, new TokenEntry("void", "/var/Foo2.java", 49), new TokenEntry("stuff", "/var/Foo2.java", 74));
match2.setLineCount(7);
match2.setSourceCodeSlice("code fragment 2");
list.add(match1);
list.add(match2);
String report = renderer.render(list.iterator());
assertEquals("<?xml version=\"1.0\"?><pmd-cpd><duplication lines=\"6\" tokens=\"75\"><file line=\"48\" path=\"/var/Foo.java\"/><file line=\"73\" path=\"/var/Foo.java\"/><codefragment><![CDATA[" + PMD.EOL + "code fragment" + PMD.EOL + "]]></codefragment></duplication><duplication lines=\"7\" tokens=\"76\"><file line=\"49\" path=\"/var/Foo2.java\"/><file line=\"74\" path=\"/var/Foo2.java\"/><codefragment><![CDATA[" + PMD.EOL + "code fragment 2" + PMD.EOL + "]]></codefragment></duplication></pmd-cpd>", report);
}
}